package DMSXL._2024.BinaryTrees;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class lowestCommonAncestor {
    public static void main(String[] args) {

    }

    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q){
       if(root == null || root == p || root == q ){
           return root;
       }
       TreeNode left = lowestCommonAncestor(root.left,p,q);
       TreeNode right = lowestCommonAncestor(root.right,p,q);
       if(left == null && right == null){
           return null;
       } else if (left == null && right != null) {
           return right;
       } else if (left != null && right == null) {
           return left;
       }else {
           return root;
       }
    }

}
